package main

import (
	"fmt"
)

/*
左旋字符串
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。
比如，输入字符串"abcdefg"和数字2，该函数将返回左旋转两位得到的结果"cdefgab"。
 */


//解法一：铸币解法
/*
func reverseLeftWords(s string, n int) string {
	str := strings.Split(s, "")
	if len(str) < n {
		n = n % len(str)
	}
	help := make([]string, len(str))
	copy(help, str)
	var res string
	for i := 0; i < len(str); i++ { //len(str)=7
		if i <= len(str)-n-1 { //i<=3
			str[i] = help[n+i] //直接赋值
		} else {
			str[i] = help[i-(len(str)-n)]
			//i=4 str[4]=help[0]
			//i=5 str[5]=help[1]
		}
	}
	for _,v:=range str{
		res = res+v
	}
	return res
}
 */

//解法二：字符串切片
func reverseLeftWords(s string, n int) string {
	res:=s[n:]+s[:n]
	return res
}

func main() {
	s:="abcdefg"
	fmt.Println(reverseLeftWords(s,3))
}
